package edu.eam.proyectodesarrollojpa.entidades;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
/**
 * The persistent class for the INTEGRANTE_SEMILLERO database table.
 * 
 */
@Entity
@Table(name = "INTEGRANTE_SEMILLERO")
public class Integrantes implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@SequenceGenerator(allocationSize = 1, name = "INTEGRANTE_SEMILLERO_IDINTEGRANTE_GENERATOR", sequenceName = "SEC_INTEGRANTE_SEMILLERO")
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "INTEGRANTE_SEMILLERO_IDINTEGRANTE_GENERATOR")
	@Column(name = "IDINTEGRANTE_SEMILLERO")
	private Long idIntegrante;
	
	// uni-directional many-to-one association to TipoAlternativaInversion
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_SEMILLEROLIDER")
	private Semillero semillero;
	
	// uni-directional many-to-one association to TipoAlternativaInversion
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_ESTUDIANTESEMILLERO")
	private Estudiante estudiante;

    @Temporal( TemporalType.TIMESTAMP)
	@Column(name = "FECHA_INGRESO_SEMILLERO")
	private Date fechaIngreso;

	public Integrantes() {
	}

	/**
	 * Metodo encargado de retornar el valor del atributo idIntegrante
	 * @return El idIntegrante asociado a la clase
	 */
	public Long getIdIntegrante() {
		return idIntegrante;
	}

	/**
	 * Metodo encargado de modificar el valor del atributo idIntegrante
	 * @param idIntegrante El nuevo idIntegrante a modificar.
	 */
	public void setIdIntegrante(Long idIntegrante) {
		this.idIntegrante = idIntegrante;
	}

	/**
	 * Metodo encargado de retornar el valor del atributo semillero
	 * @return El semillero asociado a la clase
	 */
	public Semillero getSemillero() {
		return semillero;
	}

	/**
	 * Metodo encargado de modificar el valor del atributo semillero
	 * @param semillero El nuevo semillero a modificar.
	 */
	public void setSemillero(Semillero semillero) {
		this.semillero = semillero;
	}

	/**
	 * Metodo encargado de retornar el valor del atributo estudiante
	 * @return El estudiante asociado a la clase
	 */
	public Estudiante getEstudiante() {
		return estudiante;
	}

	/**
	 * Metodo encargado de modificar el valor del atributo estudiante
	 * @param estudiante El nuevo estudiante a modificar.
	 */
	public void setEstudiante(Estudiante estudiante) {
		this.estudiante = estudiante;
	}

	/**
	 * Metodo encargado de retornar el valor del atributo fechaIngreso
	 * @return El fechaIngreso asociado a la clase
	 */
	public Date getFechaIngreso() {
		return fechaIngreso;
	}

	/**
	 * Metodo encargado de modificar el valor del atributo fechaIngreso
	 * @param fechaIngreso El nuevo fechaIngreso a modificar.
	 */
	public void setFechaIngreso(Date fechaIngreso) {
		this.fechaIngreso = fechaIngreso;
	}

	
	
}